package client.view;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

import beans.ClienteBean;
import client.controlador.Controlador;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class ModificarCliente extends javax.swing.JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel lblCuitBuscar;
	private JLabel lblNombreBuscar;
	private JTextField txtCuitBuscar;
	private JTextField txtNombreBuscar;
	private JLabel lblBuscarPor;
	private JScrollPane jScrollPane1;
	private JTable jTable1;
	private JComboBox jComboBox1;
	private JButton jButtonCerrar;
	private JButton jButtonAceptar;
	private TableModel jTable1Model;
	private JButton jButtonModificar;
	private List<ClienteBean> clientes;

	/**
	* Auto-generated main method to display this JFrame
	*/
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				ModificarCliente inst = new ModificarCliente();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	public ModificarCliente() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				jButtonAceptar = new JButton();
				getContentPane().add(jButtonAceptar);
				jButtonAceptar.setText("ACEPTAR");
				jButtonAceptar.setBounds(164, 363, 108, 38);
				jButtonAceptar.setSelected(true);
				jButtonAceptar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						//VERIFICAR INFORMACION INGRESADA
						
					}

					
				});
			}
			{
				jButtonCerrar = new JButton();
				getContentPane().add(jButtonCerrar);
				jButtonCerrar.setText("CERRAR");
				jButtonCerrar.setBounds(316, 363, 108, 38);
				jButtonCerrar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						dispose();
					}
				});
			}
			{
				lblNombreBuscar = new JLabel();
				getContentPane().add(lblNombreBuscar);
				lblNombreBuscar.setText("NOMBRE: ");
				lblNombreBuscar.setBounds(144, 67, 76, 16);
				lblNombreBuscar.setVisible(false);
			}
			{
				txtNombreBuscar = new JTextField();
				getContentPane().add(txtNombreBuscar);
				txtNombreBuscar.setBounds(232, 64, 197, 23);
				txtNombreBuscar.setVisible(false);
				txtNombreBuscar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						clientes=Controlador.getInstancia().obtenerClientes();
						actualizarTabla();
						for(int i=0;i<clientes.size();i++){
							ClienteBean c=clientes.get(i);
							if(c.getNombre().toString().toLowerCase().indexOf(txtNombreBuscar.getText().toLowerCase())>-1){
								DefaultTableModel temp = (DefaultTableModel) jTable1.getModel();
								Object nuevo[]= {c.getCuit(),c.getNombre(),"",c.getDomicilio().getLocalidad()};
								temp.addRow(nuevo);
							}
							
						}
							
					}
					private void actualizarTabla() {
						jTable1.setModel(new DefaultTableModel(new String[][]{ },new String[]{"CUIT","Nombre","Condicion","Localidad"}));
						DefaultTableCellRenderer modelocentrar=new DefaultTableCellRenderer();
								modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
								jTable1.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(1).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(2).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(3).setCellRenderer(modelocentrar);
						
					}

				});

			}
			{
				txtCuitBuscar = new JTextField();
				getContentPane().add(txtCuitBuscar);
				txtCuitBuscar.setBounds(234, 64, 155, 23);
				txtCuitBuscar.setVisible(false);
				txtCuitBuscar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						List<ClienteBean> clientes=Controlador.getInstancia().obtenerClientes();
						actualizarTabla();
						for(int i=0;i<clientes.size();i++){
							ClienteBean c=clientes.get(i);
							if(c.getCuit().toString().toLowerCase().indexOf(txtCuitBuscar.getText().toLowerCase())>-1){
								DefaultTableModel temp = (DefaultTableModel) jTable1.getModel();
								Object nuevo[]= {c.getCuit(),c.getNombre(),"",c.getDomicilio().getLocalidad()};
								temp.addRow(nuevo);
							}
							
						}
					}

					private void actualizarTabla() {
						jTable1.setModel(new DefaultTableModel(new String[][]{ },new String[]{"CUIT","Nombre","Condicion","Localidad"}));
						DefaultTableCellRenderer modelocentrar=new DefaultTableCellRenderer();
								modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
								jTable1.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(1).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(2).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(3).setCellRenderer(modelocentrar);
						
					}
				});
			}
			{
				lblCuitBuscar = new JLabel();
				getContentPane().add(lblCuitBuscar);
				lblCuitBuscar.setText("CUIT:");
				lblCuitBuscar.setBounds(146, 67, 29, 16);
				lblCuitBuscar.setVisible(false);
			}
			{
				lblBuscarPor = new JLabel();
				getContentPane().add(lblBuscarPor);
				lblBuscarPor.setText("BUSCAR POR");
				lblBuscarPor.setBounds(144, 23, 87, 16);
			}
			{
				final ComboBoxModel jComboBox1Model = 
						new DefaultComboBoxModel(
								new String[] { "Ninguno","Nombre", "Cuit" });
				jComboBox1 = new JComboBox();
				getContentPane().add(jComboBox1);
				jComboBox1.setModel(jComboBox1Model);
				jComboBox1.setBounds(232, 20, 160, 23);
				jComboBox1.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						if(jComboBox1Model.getSelectedItem().toString().equals("Nombre")){
							txtNombreBuscar.setVisible(true);
							lblNombreBuscar.setVisible(true);
							txtCuitBuscar.setVisible(false);
							lblCuitBuscar.setVisible(false);
						}else{
							if(jComboBox1Model.getSelectedItem().toString().equals("Cuit")){
								txtCuitBuscar.setVisible(true);
								lblCuitBuscar.setVisible(true);
								txtNombreBuscar.setVisible(false);
								lblNombreBuscar.setVisible(false);
							}else{
								txtNombreBuscar.setVisible(false);
								lblNombreBuscar.setVisible(false);
								txtCuitBuscar.setVisible(false);
								lblCuitBuscar.setVisible(false);
							}
						}
					}
				});
			}
			{
				jTable1Model = 	new DefaultTableModel(new String[][]{ },new String[]{"CUIT","Nombre","Condicion","Localidad"});
				
				jScrollPane1 = new JScrollPane();
				getContentPane().add(jScrollPane1);
				jScrollPane1.setBounds(12, 96, 608, 227);			
				
				jTable1 = new JTable();
				jScrollPane1.setViewportView(jTable1);
				jTable1.setModel(jTable1Model);
				jTable1.setBounds(12, 161, 608, 190);
					
			}
			{
				jButtonModificar = new JButton();
				getContentPane().add(jButtonModificar);
				jButtonModificar.setText("MODIFICAR");
				jButtonModificar.setBounds(442, 60, 104, 27);
				jButtonModificar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						int fila=jTable1.getSelectedRow();
						int columna=0;
						String cuit=jTable1.getModel().getValueAt(fila, columna).toString();
						ClienteBean c=this.buscarClienteLocal(cuit);
						this.actualizarTabla();
						ModificarClienteAux m=new ModificarClienteAux(c);
						m.setLocationRelativeTo(null);
						m.setVisible(true);
					}
					private ClienteBean buscarClienteLocal(String cuit) {
						ClienteBean c=new ClienteBean();
						for(int i=0;i<clientes.size();i++){
							if(clientes.get(i).getCuit().equals(cuit)){
								c=clientes.get(i);
							}
						}
						return c;
					}
					private void actualizarTabla() {
						jTable1.setModel(new DefaultTableModel(new String[][]{ },new String[]{"CUIT","Nombre","Condicion","Localidad"}));
						DefaultTableCellRenderer modelocentrar=new DefaultTableCellRenderer();
								modelocentrar.setHorizontalAlignment(SwingConstants.CENTER);
								jTable1.getColumnModel().getColumn(0).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(1).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(2).setCellRenderer(modelocentrar);
								jTable1.getColumnModel().getColumn(3).setCellRenderer(modelocentrar);
						
					}
				});
			}
			pack();
			this.setSize(648, 450);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}

}
